// import axios from 'axios'
// import qs from 'qs'
// import router from '@/router'
//
// // axios.defaults.baseURL = url.baseURL
// axios.defaults.withCredentials = true
// // axios.defaults.timeout = 100
// // 添加一个请求拦截器
// axios.interceptors.request.use(config => {
//   checkParams(config.data)
//   if (config.method === 'post') {
//     config.data = qs.stringify(config.data, { indices: false })
//   }
//   // if (config.pathVar) {
//   //   config.url = config.url + '/' + config.pathVar
//   // }
//   return config
// }, error => {
//   return Promise.reject(error)
// })
//
// // 添加一个响应拦截器
// axios.interceptors.response.use(response => {
//   return new Promise((resolve, reject) => {
//     if (response.data.code === '000000') {
//       resolve(response.data)
//     } else if (response.data.code === '000100') {
//       sessionStorage.setItem('selfInfo', '')
//         router.push('/login')
//       getIsNull(response.data.msg)
//       reject(response.data)
//     } else if (response.data.code === '500') {
//       reject(response.data)
//       getIsNull(response.data.msg)
//     } else {
//       reject(response.data)
//       getIsNull(response.data.msg)
//     }
//   })
// }, (error) => {
//   console.log(error.response)
//   getIsNull(error.response.data.msg)
// })
//
// const getIsNull = (mes) => {
//   if (!mes) {
//     alert('未知错误')
//   } else {
//     alert(mes)
//   }
// }
// // 检测参数是否为空字符串
// const checkParams = (params) => {
//   if (typeof params === 'object') {
//     for (let item in params) {
//       if (params[item] === '') {
//         params[item] = undefined
//       }
//     }
//   }
// }
// export default axios

const modal = weex.requireModule('modal');
const stream = weex.requireModule('stream');
/**
 *
 * @param url 必传url
 * @param method 默认get
 * @param params  参数
 * @param type  默认json
 * @param headers 默认{'Content-Type':'application/x-www-form-urlencoded'}
 * @returns {Promise}
 */
const getStreamData = (url, method, params, type, headers) => {
  return new Promise((resolve, reject) => {

    stream.fetch({
        url: url,
        method: method || 'GET',
        type: type || 'json',
        headers: headers || {'Content-Type':'application/x-www-form-urlencoded'},
        body: toParams(params)
    }, (ret) => {
        if (!ret.ok) {
            modal.toast({
                'message': "失败",
                'duration': 1.0
            })
            reject(ret)
        } else {
            modal.toast({
                message: JSON.stringify(ret.data),
                duration: 1.0
            })
            resolve(ret.data)
        }
    }, (res) => {
      // console.log(res)
      })
  })
}

export default getStreamData

const toParams = (obj) => {
    var param = ""
    for(const name in obj) {
        if(typeof obj[name] != 'function') {
            param += "&" + name + "=" + encodeURI(obj[name])
        }
    }
    return param.substring(1)
}
